{% extends 'web_user/layout.html' %}

{% block content %}
    <div class="container">

        <div class="panel panel-default">
            <div class="panel-heading">表单</div>
            <div class="panel-body">
                <form id="formAdd" novalidate> <!-- novalidate去规避浏览器做的校验-->

                    <div class="clearfix">
                        {% for field in form %}
                            <div class="col-xs-6">
                                <div class="form-group" style="position: relative;margin-bottom: 20px">
                                    <label>{{ field.label }}</label>
                                    <!-- field.label会去取到models.py定义类的属性中的verbose_name-->
                                    {{ field }}
                                    <span class="error-msg" style="color: red;position: absolute"></span>
                                    <!--<input type="text" class="form-control" placeholder="姓名" name="user"> -->
                                </div>
                            </div>
                        {% endfor %}
                        <div class="col-xs-12">
                            <button id="btnAdd" type="button" class="btn btn-primary">提 交</button>
                        </div>
                    </div>
                </form>




            </div>
        </div>
        <div class="panel panel-default">
      <!-- Default panel contents -->
      <div class="panel-heading">
          <span class="glyphicon glyphicon-th-list" aria-hidden="true"></span>
          任务列表
      </div>

      <!-- Table -->
      <table class="table table-bordered">
        <thead>
          <tr>
            <th>ID</th>
            <th>标题</th>
            <th>级别</th>
            <th>负责人</th>
            <th>操作</th>
          </tr>
        </thead>
        <tbody>
        {% for obj in queryset %}
          <tr>
            <th>{{ obj.id }}</th>
            <th>{{ obj.title }}</th>
            <th>{{ obj.get_level_display }}</th>
            <th>{{ obj.user.username }}</th>
            <td>
                <a class="btn btn-primary btn-xs" href="#">编辑</a>
                <a class="btn btn-danger btn-xs" href="#">删除</a>
            </td>
          </tr>
        {% endfor %}
        </tbody>
      </table>
            <ul class="pagination">
                {{ page_string }}
            </ul>
    </div>

        <div style="height: 500px"></div>
        <div class="panel panel-default">
        <hr/>
        <h1>Ajax学习</h1>
        <h3>示例1</h3>
        <input type="button" id="btn1" class="btn btn-primary" value="点击1" onclick="clickMe();"/> <!--通过绑定一个事件来触发clickMe()的函数-->

        <h3>示例2</h3>
        <input type="text" id="txtUser" placeholder="姓名">
        <input type="text" id="txtAge" placeholder="年龄">
        <input type="button" id="btn2" class="btn btn-primary" value="点击2"/>

        <h3>示例3</h3>
        <!--有很多输入框，我们可以放到表单中，然后统一获取进行处理,表单需要加入id，每个输入框需要name-->
        <form id="form3">
            <input type="text" id="txtUser" name="user" placeholder="姓名">
            <input type="text" id="txtAge" name="age" placeholder="年龄">
            <input type="text" id="txtEmail" name="email" placeholder="邮箱">
            <input type="text" id="txtMore" name="more" placeholder="介绍">
        </form>
        <input type="button" id="btn3" class="btn btn-primary" value="点击3"/>
        </div>

    </div>

{% endblock %}

{% block js %}
    <script type="text/javascript">
    $(function (){

        // 页面框架加载完成之后代码自动执行
        bindBtn1Event();
        bindBtn2Event();
        bindBtn3Event();
        bindBtnAddEvent();
    })

    // 基于jQuery的方式来绑定事件

    function bindBtn1Event(){
        $("#btn1").click(function (){
            $.ajax({
                url:"/task/ajax/",
                type: "post",
                data:{
                    n1:123,
                    n2:456
                },
                dataType:"JSON", //将后端的json字符串反序列化js对象
                success:function (res) {
                    console.log(res)
                    console.log(res.status) //取出对象中的每一个值
                    console.log(res.data)
                }
            })
        })
    }

    function bindBtn2Event(){
        $("#btn2").click(function () {
            $.ajax({
                url: "/task/ajax/",
                type: "post",
                dataType: "JSON",
                data:{
                    "name": $("#txtUser").val(),  //通过jQuery中$("属性值").val()获取标签内容 会转成user=test&pwd=qwe
                    "age": $("#txtAge").val()
                },
                success: function (res){
                    console.log(res);
                    console.log(res.status);
                    console.log(res.data);
                }
            })
        })
    }

    function bindBtn3Event() {
        $("#btn3").click(function () {
            $.ajax({
                url: "/task/ajax/",
                type: "post",
                dataType: "JSON",
                data: $("#form3").serialize(),  // $(属性值).serialize()方法可以将表单中输入框的所有数据获取并且打包发送Django后台。
                success: function (res) {
                    console.log(res);
                }
            })
        })

    }

    function bindBtnAddEvent(){
        $("#btnAdd").click(function () {

            // 点击时先清空错误信息
            $(".error-msg").empty();

            $.ajax({
                "url": "/task/add/",
                "type": "post",
                "dataType": "JSON",
                "data":$("#formAdd").serialize(),   // $(属性值).serialize()方法可以将表单中输入框的所有数据获取并且打包发送Django后台。
                success: function (res) {
                    if (res.status){
                        alert("添加成功");
                        // 用js代码实现页面的刷新
                        location.reload();
                    }else {
                        // console.log(res.error);    // {title: Array(1), detail: Array(1), user: Array(1)}
                        $.each(res.error,function (name,data) {
                            // console.log(name,data);   //title ['这个字段是必填项。'] detail ['这个字段是必填项。'] user ['这个字段是必填项。']
                            $("#id_" + name).next().text(data[0]);   // 通过id找到input输入框下面的span标签，并将错误信息设置为对应的错误信息
                        })
                    }
                }
            })
        })
    }










    // 基于DOM方式绑定事件
    {#function clickMe(){#}
    {#    console.log("点击了按钮");#}
    {#    $.ajax({#}
    {#        url:"/task/ajax/",#}
    {#        type:"post",#}
    {#        data:{#}
    {#            n1:123,#}
    {#            n2:456#}
    {#        },#}
    {#        success:function (res){#}
    {#            console.log(res);#}
    {#        }#}
    {#    })#}
    {#    }#}

    </script>

{% endblock %}